Basics
- I can't find what I'm
looking for in this FAQ. What do I do now?
- Go to the forums associated with this project.
Follow the
"Project Home" link above and there you should be able to find the
project forums. Either myself or other folks will be more
than
happy to try to help.
- Does this
support disk images used in emulators? (e.g. .dsk, .do, .po files)
- Not yet.
Support for standard dos 3.3 disks is about 2/3 finished.
See the status page for progress updates on this subject.
Right now only games contained in single files work because
they
require no interaction with the disk drive while running.
- How does this work
exactly?
- See the "Technical Details" section for a better
understanding of the inner workings.
- Why java? Why
not C/C++/Pyton/Delphi?
- Because I don't like answering the question "When will
you
support [*nix | mac | win32 | ...]". Second to that, Java is
what
I use on a daily basis so my familiarity with it allows me to rapidly
add new features.
- Java is free and is already ported to many platforms, and
as
such it allows you to write cross-platform code that is both simple and
elegant. Not that I want to knock Mono here, but I'm not
interested in learning a java variant when I can use the real deal, and
I have a strong dislike for C/C++.
- How do I
add/remove games to the list?
- Easy! In the lib/data directory
you'll find a file named games.xml.
This file contains information about all games in the lib/data/games
subdirectory. The game file names have a specific pattern
inherited from the CiderPress tool -- though the actual file names
really don't matter because the information is captured in XML. The
file pattern is NNNNNN#TTAAAA where N is a shortened game name without
spaces, TT is the two-digit hexidecimal file type code (06 =
binary, FC = basic) and AAAA is the four-digit starting address where
the file should be loaded in the apple's main memory.
Likewise,
these values are also stored in the xml file. As this xml
format
grows, it will be described in the Technical Details section.
- Why do some games have an
exclamation mark (!) in front of their names?
- Because those games were tested and deemed not working.
So it's a warning to the user. For now, when you
try to
play one of these games it will still try to load the game, but instead
of starting it directly it will ask you to press ctrl-reset to start it
once it is loaded. This is so the apple firmware might reset
other unknowns first. It may or may not work but I figure
it's
better than nothing.
- Why should I donate?
- Ultimately, this should be a personal decision you make
for
yourself. I'm not going to tell you one way or another if you
should. However, please know that any donations received will
help me obtain equipment and other retro gear so I can do additional
testing and start other homebrew projects in the future. I'm
not
starving, but due to personal circumstances I have zero budget for
non-discressionary spending at this point in time so it really helps in
that sense. It's also a form of encouragement that the long
sleepless hours are worth it to someone out there. :-)
- I can't donate money but
I would like to help. What can I do?
- Hardware donations are greatly appreciated. A
//c+, Laser
128ex, eeprom burner, or a working dev board (ARM, Spartan FGPA, PIC --
I'm not picky) would be nice. A CFFA would be beyond cool,
but
beggers can and will not be choosers in this case. (however,
I
can think of several things I will not be able to get much use out of,
so let's talk about it first -- email me at brendan.robert[at]gmail.[remove_this]com)
- I included over 200 games with this program and can't
play them
all. Also I can't test the ones that require a joystick
because I
no joystick (does this make me less of a man?) So if you
encounter a game that doesn't work, please post about it on the forums
so that hopefully it can be fixed or at least diagnosed.
- If you have an unenhanced //e, ][+ or //gs, I would like
if you
could give this a shot on those computers and let me know how it goes.
Again, post your findings on the forum -- it will help others
who
might run in to the same issues.
- What's the point of this
project? Why are you doing this? Don't you have
better things to do?
- Greetings, non-geek reader. (a real geek would
never bother with such questions. You so-called "normal"
people know who you are ;-) The main goal is to play old
retro
apple games on actual retro apple hardware without using floppy disks.
Mostly because I don't trust floppies, especially floppies
that
are old enough to legally buy alcohol and vote.
- AppleWin and Kegs, among other emulators, are truly
badass and
more advanced that we could ever hope for. These projects are
still being actively improved each month. However, emulators will never be 100%
exact replications of hardware.
As such, some games don't look exactly right or play as well
as
they do on hardware (e.g. money munchers by Bob Bishop). By
all
means, if your favorite game works in AppleWin already and you'e happy
with that then good for you. Enjoy it. Let the
AppleWin
folks know what doesn't work (beyond that which they already know about
like mouse support, true SSC support and cycle-accurate video display
-- the bug list is growing smaller and smaller and we're very fortunate
for that.)
- Finally, there's a good ol' nostalgic feel having a //e
hooked
up to the TV with the way-too-loud internal speaker blaring the moon
patrol theme. Either you dig it, or you don't. ;-)
Java Errors
- "java.lang.UnsatisfiedLinkError: no rxtxSerial in
java.library.path"
- This means you did not add the lib directory to java's
classpath. You can do so either by modifying the command-line
syntax of how you are calling java (preferred method), or you can
modify your environment variables to include the path.
- It is also possible that you have already added the lib directory to the classpath, but have not downloaded the approriate binary distribution of RXTX
for your platform and placed the files in there yet. The binary
and lib releases of A2GameServer only include the win32 libraries.
- "Port X already in use" or "Port is not available"
- Either you picked the wrong serial port, you have another
instance of this program running already, or something else is holding
that resource and won't let go of it. An extreme situation I
encountered was that I'm using a non-standard usb based serial port,
which uses its own driver rather than the standard Windows one.
When I enabled hardware flow control (in an older version of
the
code that didn't respect the rules of flow control), the java program
froze in a deadlock. I couldn't force-quit the java program
either. In fact, I couldn't even shut down without holding
down
the power button for 5 seconds! Also, whenever I tried to
start
the program again (before rebooting) I got the message that the port
was already in use. If you are sure you're using the right
port
and no other serial-based programs are running, try to use another
terminal program to use that port.
- "Cannot write X", "Expected X but timed out"
- This is because echo-check mode is enabled but the
java
program is likely not receiving data back from the apple. If
you
enable echo-check (!echo
true
in the init script) then you must ensure the apple is sending data to
the PC (type pr#2 and test in a com program) -- you can either disable
the echo-check mode (not recommended) or enable echo on the apple by
typing this
on the apple after IN#2:
- Ctrl-A (should then see a special prompt) 2S
- Note: The //c echoes received data to the serial port by
default, whereas the SSC does not.
- "Expected X but got Y"
- The init or driver script have echo feedback mode enabled
but
is not receiving data back from the apple for some reason.
This
could be because of a difference in baud rate settings, or possible
also that the apple is not set for 8 data bits, No parity and 1 stop
bit.
- "Timed out waiting to send data to remote host!"
- This can only happen when hardware flow control is
enabled. Make sure the apple needs flow control.
Try !flow XON
or !flow NONE
as alternatives if necessary.
- "Failed to get response from driver after 3 retries"
- If echo-check mode is disabled (set by adding !echo false in the
init.txt script) then this means the apple was never able to receive
data well enough to start up the serial driver program. Check
you can communicate with the apple using a regular serial communication
program.
- If the apple appears to be receiving data, check that the
last line is 300g and not 30g. I've seen this last line get
mangled a few times randomly. If you're quick on the draw,
quickly type ctrl-x 300g
(enter) before the java program completely gives up.